home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
IRIX Base Documentation 1998 November
/
IRIX 6.5.2 Base Documentation November 1998.img
/
usr
/
share
/
catman
/
p_man
/
cat3c
/
mq_notify.z
/
mq_notify
Wrap
Text File
|
1998-10-30
|
5KB
|
133 lines
mmmmqqqq____nnnnoooottttiiiiffffyyyy((((3333cccc)))) mmmmqqqq____nnnnoooottttiiiiffffyyyy((((3333cccc))))
NNNNAAAAMMMMEEEE
_mmmm_qqqq______nnnn_oooo_tttt_iiii_ffff_yyyy - register message notification request
CCCC SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
_####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_mmmm_qqqq_uuuu_eeee_uuuu_eeee_...._hhhh_>>>>
_iiii_nnnn_tttt _mmmm_qqqq______nnnn_oooo_tttt_iiii_ffff_yyyy _((((_mmmm_qqqq_dddd______tttt _m_q_d_,,,, _cccc_oooo_nnnn_ssss_tttt _ssss_tttt_rrrr_uuuu_cccc_tttt _ssss_iiii_gggg_eeee_vvvv_eeee_nnnn_tttt _****_n_o_t_i_f_i_c_a_t_i_o_n_))))_;;;;
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
_mmmm_qqqq______nnnn_oooo_tttt_iiii_ffff_yyyy registers a message _n_o_t_i_f_i_c_a_t_i_o_n request with the message queue
named by _m_q_d. A message notification is an asynchronous event which
informs a process of a message that has arrived on a previously empty
queue. A message queue transition from empty to non-empty will result in
a _n_o_t_i_f_i_c_a_t_i_o_n delivery to the process that registered the request.
There can be only one message notification registered with a queue at any
given time.
If the _s_i_g_e_v__n_o_t_i_f_y member of _n_o_t_i_f_i_c_a_t_i_o_n is SIGEV_THREAD then the
function _s_i_g_e_v__n_o_t_i_f_y__f_u_n_c_t_i_o_n will be called by a new thread (see
pthreads(5)) with _s_i_g_e_v__v_a_l_u_e as the argument. This thread is created
when the event arrives with the attributes specified in
_s_i_g_e_v__n_o_t_i_f_y__a_t_t_r_i_b_u_t_e_s except that it is automatically detached. The
calling process should ensure there are sufficient resources to create
the thread.
If the _n_o_t_i_f_i_c_a_t_i_o_n argument is _NNNN_UUUU_LLLL_LLLL and the calling process already has
a pending notification request, then the pending request will be cleared.
The message queue will then be available for notification registration.
Once a message notification is delivered to a process, or the requesting
process exits before receiving the notification, then the request is
cleared. The message queue will then be available for notification
registration.
If a message arrives at an empty queue, and a process is blocked in
_mmmm_qqqq______rrrr_eeee_cccc_eeee_iiii_vvvv_eeee waiting for a message, then the waiting process will receive
the message. In this case, the notification request registered with the
queue will have no effect.
_mmmm_qqqq______nnnn_oooo_tttt_iiii_ffff_yyyy will fail if one or more of the following conditions are true:
[EBADF] The message queue descriptor, _m_q_d, is not valid.
[EBUSY] A notification request is already registered with the
queue.
[EINTR] A signal interrupted the _mmmm_qqqq______nnnn_oooo_tttt_iiii_ffff_yyyy function call.
[EAGAIN] Insufficient memory to implement the SIGEV_THREAD service
for _n_o_t_i_f_i_c_a_t_i_o_n.
PPPPaaaaggggeeee 1111
mmmmqqqq____nnnnoooottttiiiiffffyyyy((((3333cccc)))) mmmmqqqq____nnnnoooottttiiiiffffyyyy((((3333cccc))))
SSSSEEEEEEEE AAAALLLLSSSSOOOO
_mmmm_qqqq______oooo_pppp_eeee_nnnn(3c), _iiii_nnnn_tttt_rrrr_oooo(3c), _mmmm_qqqq______uuuu_nnnn_llll_iiii_nnnn_kkkk(3c), _mmmm_qqqq______rrrr_eeee_cccc_eeee_iiii_vvvv_eeee(3c), _mmmm_qqqq______ssss_eeee_nnnn_dddd(3c),
_mmmm_qqqq______gggg_eeee_tttt_aaaa_tttt_tttt_rrrr(3c)
DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
Upon successful completion, a value of 0 is returned. Otherwise, a value
of -1 is returned and _eeee_rrrr_rrrr_nnnn_oooo is set to indicate the error.
PPPPaaaaggggeeee 2222